/// humanId : 34877
/// humanName : "访客"
/// isPackage : 0
/// menuTypeList : [{"branchId":7636,"createdBy":"5","createdDate":"2024-09-19 19:04:17","id":97,"isDel":0,"limitElderPackage":1,"limitElderUnPackage":1,"limitStaff":1,"limitTemp":1,"name":"长者类型菜单","remark":"222","ruleElderPackage":1,"ruleElderUnPackage":0,"ruleStaff":1,"ruleTemp":1,"saasId":1000,"status":0,"tenantId":1000,"updatedBy":"5","updatedDate":"2024-09-26 10:13:41"}]
/// menuTypeRuleInfoList : [{"limitFlag":1,"menuTypeId":97,"moneyFlag":1},{"limitFlag":1,"menuTypeId":96,"moneyFlag":1}]
/// userType : 4
/// userTypeName : "访客"

class FeeRuleData {
  FeeRuleData({
      this.humanId, 
      this.humanName, 
      this.isPackage, 
      this.menuTypeList, 
      this.menuTypeRuleInfoList, 
      this.userType, 
      this.userTypeName,});

  FeeRuleData.fromJson(dynamic json) {
    humanId = json['humanId'];
    humanName = json['humanName'];
    isPackage = json['isPackage'];
    if (json['menuTypeList'] != null) {
      menuTypeList = [];
      json['menuTypeList'].forEach((v) {
        menuTypeList?.add(MenuTypeList.fromJson(v));
      });
    }
    if (json['menuTypeRuleInfoList'] != null) {
      menuTypeRuleInfoList = [];
      json['menuTypeRuleInfoList'].forEach((v) {
        menuTypeRuleInfoList?.add(MenuTypeRuleInfoList.fromJson(v));
      });
    }
    userType = json['userType'];
    userTypeName = json['userTypeName'];
  }
  num? humanId;
  String? humanName;
  num? isPackage;
  List<MenuTypeList>? menuTypeList;
  List<MenuTypeRuleInfoList>? menuTypeRuleInfoList;
  num? userType;
  String? userTypeName;
FeeRuleData copyWith({  num? humanId,
  String? humanName,
  num? isPackage,
  List<MenuTypeList>? menuTypeList,
  List<MenuTypeRuleInfoList>? menuTypeRuleInfoList,
  num? userType,
  String? userTypeName,
}) => FeeRuleData(  humanId: humanId ?? this.humanId,
  humanName: humanName ?? this.humanName,
  isPackage: isPackage ?? this.isPackage,
  menuTypeList: menuTypeList ?? this.menuTypeList,
  menuTypeRuleInfoList: menuTypeRuleInfoList ?? this.menuTypeRuleInfoList,
  userType: userType ?? this.userType,
  userTypeName: userTypeName ?? this.userTypeName,
);
  Map<String, dynamic> toJson() {
    final map = <String, dynamic>{};
    map['humanId'] = humanId;
    map['humanName'] = humanName;
    map['isPackage'] = isPackage;
    if (menuTypeList != null) {
      map['menuTypeList'] = menuTypeList?.map((v) => v.toJson()).toList();
    }
    if (menuTypeRuleInfoList != null) {
      map['menuTypeRuleInfoList'] = menuTypeRuleInfoList?.map((v) => v.toJson()).toList();
    }
    map['userType'] = userType;
    map['userTypeName'] = userTypeName;
    return map;
  }

}

/// limitFlag : 1
/// menuTypeId : 97
/// moneyFlag : 1

class MenuTypeRuleInfoList {
  MenuTypeRuleInfoList({
      this.limitFlag, 
      this.menuTypeId, 
      this.moneyFlag,});

  MenuTypeRuleInfoList.fromJson(dynamic json) {
    limitFlag = json['limitFlag'];
    menuTypeId = json['menuTypeId'];
    moneyFlag = json['moneyFlag'];
  }
  num? limitFlag;
  num? menuTypeId;
  num? moneyFlag;
MenuTypeRuleInfoList copyWith({  num? limitFlag,
  num? menuTypeId,
  num? moneyFlag,
}) => MenuTypeRuleInfoList(  limitFlag: limitFlag ?? this.limitFlag,
  menuTypeId: menuTypeId ?? this.menuTypeId,
  moneyFlag: moneyFlag ?? this.moneyFlag,
);
  Map<String, dynamic> toJson() {
    final map = <String, dynamic>{};
    map['limitFlag'] = limitFlag;
    map['menuTypeId'] = menuTypeId;
    map['moneyFlag'] = moneyFlag;
    return map;
  }

}

/// branchId : 7636
/// createdBy : "5"
/// createdDate : "2024-09-19 19:04:17"
/// id : 97
/// isDel : 0
/// limitElderPackage : 1
/// limitElderUnPackage : 1
/// limitStaff : 1
/// limitTemp : 1
/// name : "长者类型菜单"
/// remark : "222"
/// ruleElderPackage : 1
/// ruleElderUnPackage : 0
/// ruleStaff : 1
/// ruleTemp : 1
/// saasId : 1000
/// status : 0
/// tenantId : 1000
/// updatedBy : "5"
/// updatedDate : "2024-09-26 10:13:41"

class MenuTypeList {
  MenuTypeList({
      this.branchId, 
      this.createdBy, 
      this.createdDate, 
      this.id, 
      this.isDel, 
      this.limitElderPackage, 
      this.limitElderUnPackage, 
      this.limitStaff, 
      this.limitTemp, 
      this.name, 
      this.remark, 
      this.ruleElderPackage, 
      this.ruleElderUnPackage, 
      this.ruleStaff, 
      this.ruleTemp, 
      this.saasId, 
      this.status, 
      this.tenantId, 
      this.updatedBy, 
      this.updatedDate,});

  MenuTypeList.fromJson(dynamic json) {
    branchId = json['branchId'];
    createdBy = json['createdBy'];
    createdDate = json['createdDate'];
    id = json['id'];
    isDel = json['isDel'];
    limitElderPackage = json['limitElderPackage'];
    limitElderUnPackage = json['limitElderUnPackage'];
    limitStaff = json['limitStaff'];
    limitTemp = json['limitTemp'];
    name = json['name'];
    remark = json['remark'];
    ruleElderPackage = json['ruleElderPackage'];
    ruleElderUnPackage = json['ruleElderUnPackage'];
    ruleStaff = json['ruleStaff'];
    ruleTemp = json['ruleTemp'];
    saasId = json['saasId'];
    status = json['status'];
    tenantId = json['tenantId'];
    updatedBy = json['updatedBy'];
    updatedDate = json['updatedDate'];
  }
  num? branchId;
  String? createdBy;
  String? createdDate;
  num? id;
  num? isDel;
  num? limitElderPackage;
  num? limitElderUnPackage;
  num? limitStaff;
  num? limitTemp;
  String? name;
  String? remark;
  num? ruleElderPackage;
  num? ruleElderUnPackage;
  num? ruleStaff;
  num? ruleTemp;
  num? saasId;
  num? status;
  num? tenantId;
  String? updatedBy;
  String? updatedDate;
MenuTypeList copyWith({  num? branchId,
  String? createdBy,
  String? createdDate,
  num? id,
  num? isDel,
  num? limitElderPackage,
  num? limitElderUnPackage,
  num? limitStaff,
  num? limitTemp,
  String? name,
  String? remark,
  num? ruleElderPackage,
  num? ruleElderUnPackage,
  num? ruleStaff,
  num? ruleTemp,
  num? saasId,
  num? status,
  num? tenantId,
  String? updatedBy,
  String? updatedDate,
}) => MenuTypeList(  branchId: branchId ?? this.branchId,
  createdBy: createdBy ?? this.createdBy,
  createdDate: createdDate ?? this.createdDate,
  id: id ?? this.id,
  isDel: isDel ?? this.isDel,
  limitElderPackage: limitElderPackage ?? this.limitElderPackage,
  limitElderUnPackage: limitElderUnPackage ?? this.limitElderUnPackage,
  limitStaff: limitStaff ?? this.limitStaff,
  limitTemp: limitTemp ?? this.limitTemp,
  name: name ?? this.name,
  remark: remark ?? this.remark,
  ruleElderPackage: ruleElderPackage ?? this.ruleElderPackage,
  ruleElderUnPackage: ruleElderUnPackage ?? this.ruleElderUnPackage,
  ruleStaff: ruleStaff ?? this.ruleStaff,
  ruleTemp: ruleTemp ?? this.ruleTemp,
  saasId: saasId ?? this.saasId,
  status: status ?? this.status,
  tenantId: tenantId ?? this.tenantId,
  updatedBy: updatedBy ?? this.updatedBy,
  updatedDate: updatedDate ?? this.updatedDate,
);
  Map<String, dynamic> toJson() {
    final map = <String, dynamic>{};
    map['branchId'] = branchId;
    map['createdBy'] = createdBy;
    map['createdDate'] = createdDate;
    map['id'] = id;
    map['isDel'] = isDel;
    map['limitElderPackage'] = limitElderPackage;
    map['limitElderUnPackage'] = limitElderUnPackage;
    map['limitStaff'] = limitStaff;
    map['limitTemp'] = limitTemp;
    map['name'] = name;
    map['remark'] = remark;
    map['ruleElderPackage'] = ruleElderPackage;
    map['ruleElderUnPackage'] = ruleElderUnPackage;
    map['ruleStaff'] = ruleStaff;
    map['ruleTemp'] = ruleTemp;
    map['saasId'] = saasId;
    map['status'] = status;
    map['tenantId'] = tenantId;
    map['updatedBy'] = updatedBy;
    map['updatedDate'] = updatedDate;
    return map;
  }

}